package com.somewater.game.controllers
{
	import com.somewater.control.IClear;
	import com.somewater.storage.UserDef;
	
	import flash.events.EventDispatcher;

	/**
	 * Класс, хранящий ссылки на основные компоненты, присущие любой сущности в мире весов
	 */
	public class Entity extends EventDispatcher implements IClear
	{
		public static const ENTITY_ROLL_OVER:String = "entityRollOver";
		public static const ENTITY_ROLL_OUT:String = "entityRollOut";
		public static const ENTITY_KILL:String = "entityKill";
		public static const ENTITY_COLLIDE:String = "entityCollide";
		
		
		public var itsMe:Boolean = false;
		
		
		public var user:UserDef;
		public var render:Render;
		public var spatial:Spatial;
		
		public function Entity()
		{
			// компоненты по умлчанию создаются тут же:
			user = new UserDef({});
			
			render = new Render(this);
			spatial = new Spatial(this);
		}
		
		public function clear():void
		{
			// обнулить все переменные
			user = null;
			render.clear();
			render = null;
			spatial.clear();
			spatial = null;
		}
	}
}